package com.kd.dao.recruiter;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.kd.bean.recruiter.Company_msg;
import com.kd.bean.recruiter.Recruiter_basic;
import com.kd.bean.recruiter.Recruitment_msg;

/**
 * 招聘信息表<IRecruitment_msgDao>
 * 数据持久化层
 * @author ZFC
 *
 */
public interface IRecruitment_msgDao {
	
	/**
	 * <默认分页显示所有岗位招聘信息（一次10条信息）。
	 * 仅显示招聘岗位，薪资待遇，招聘公司，公司地址，工作经验年限，以及招聘者头像，名字。
	 * 招聘信息状态为1的所有信息
	 * @return
	 * @throws Exception
	 */
	public List<Recruitment_msg> queryAllByRecruitment_msg(Map<String, Object> map) throws Exception;
	
	/**
	 * 查询招聘信息
	 * @param rec_id 招聘信息id
	 * @return
	 * @throws Exception
	 */
	public Recruitment_msg queryByRec_id(Integer rec_id) throws Exception;
	
	/**
	 * 管理员
	 * 查看举报招聘者信息，如果确实违规可对招聘者进行禁用
	 * @param rec_id
	 * @param msg_state
	 * @return
	 */
	public int updateRec_msg_state(Integer rec_id,Integer msg_state);
	
	/**管理员
	 * 查询所有招聘信息的id 通过关联招聘者
	 * 
	 * @param recruiter_id
	 * @return
	 * @throws Exception
	 */
	public Integer[] queryByRecruiter_id(Integer recruiter_id) throws Exception;
	
	/**
	 * 管理员
	 * 下架所有招聘信息 通过招聘信息id
	 * @param rec_id
	 * @return
	 * @throws Exception
	 */
	public int updateRec_msg_stateByRecruiter_id(@Param("rec_id")Integer[] rec_id,@Param("rec_msg_state")Integer rec_msg_state) throws Exception;
	
	/**
	 * 管理员
	 * 查看所有招聘信息
	 * @return
	 * @throws Exception
	 */
	public List<Recruitment_msg> queryAllRecruitment_msg() throws Exception;
	
	/**
	 * 管理员
	 * 查询刚刚发布的招聘信息
	 * 审核状态为3的所有信息
	 * @return
	 * @throws Exception
	 */
	public List<Recruitment_msg> queryGGFaBuZhaoPingMessage() throws Exception;
	
	/**
	 * 管理员
	 * 修改发布招聘信息的状态为审核通过
	 * @param rec_id
	 * @param rec_msg_check_state
	 * @return
	 * @throws Exception
	 */
	public int updateFaBuZhaoPingMessagRec_msg_check_state(
			@Param("rec_id")Integer rec_id,@Param("rec_msg_check_state")Integer rec_msg_check_state) throws Exception;
	
	/**
	 * 管理员
	 * 查询岗位数
	 * @return
	 * @throws Exception
	 */
	public int queryJobCount() throws Exception;
	
	/**
	 * 管理员
	 * 查看每日岗位数
	 * @return
	 * @throws Exception
	 */
	public int queryNowJobCount() throws Exception;
	
	
	/**
	 * 招聘者
	 * 查看自己旗下所有招聘信息
	 * @param recruiter_id
	 * @return
	 * @throws Exception
	 */
	public List<Recruitment_msg> queryAllRecMsgByRecruiter_id(Integer recruiter_id) throws Exception;
	
	/**
	 * 招聘者
	 * 删除招聘信息
	 * @param rec_id
	 * @return
	 * @throws Exception
	 */
	public int removeRecMsgByRecruiter_id(Integer rec_id) throws Exception;
	
	/**
	 * 招聘者
	 * 发布招聘信息
	 * @param recMsg
	 * @return
	 * @throws Exception
	 */
	public int insertRecMsg(Recruitment_msg recMsg) throws Exception;
	
	/**
	 * 修改招聘信息
	 * rec_name,rec_phone
	 * 招聘者旗下的所有招聘信息
	 * @param basic
	 * @return
	 */
	public int updateRecNameAndPhone(Recruiter_basic basic);
	
	/**
	 * 修改招聘信息
	 * rec_company_name,rec_company_address
	 * 招聘者旗下的所有招聘信息
	 * @param company
	 * @return
	 */
	public int updateRec_company_nameAndRec_company_address(
			@Param("rec_company_name")String rec_company_name,
			@Param("rec_company_address")String rec_company_address,
			@Param("recruiter_id")Integer recruiter_id);
}
